package com.xiyue.leaspring;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;

import org.springframework.expression.EvaluationContext;
import org.springframework.expression.Expression;
import org.springframework.expression.ExpressionParser;
import org.springframework.expression.spel.standard.SpelExpressionParser;
import org.springframework.expression.spel.support.StandardEvaluationContext;

public class SpELFirstDemo25 {

	/**
	 * 采用Set集合也同样可以使用，实际上这一项功能相当于弥补了Set集合无法通过索引获取数据的缺陷。
	 * 在修改集合时，除了可以修改List集合，也可以修改Map集合中的内容。对于Map集合，可以修改某一个key的内容，也可以采用迭代修改全部集合内容。
	 * @param args
	 * @throws Exception
	 */
	public static void main(String[] args) throws Exception {
		// TODO Auto-generated method stub
		List<String> all = new ArrayList<String>();
		Collections.addAll(all,"xiyue","dasd","xiao","yuasd");
		String str = "#allData.!['迭代修改：'+#this]";//定义表达式
		ExpressionParser parser = new SpelExpressionParser();
		Expression exp = parser.parseExpression(str);
		EvaluationContext context = new StandardEvaluationContext();
		context.setVariable("allData", all);
		List<String> result = exp.getValue(context,List.class);//获取集合
		System.out.println(result);
		System.out.println(all);
	}

}
